package homework.test3;

import java.io.File;
import java.util.HashMap;

/*
.使用递归的方式统计指定文件夹中不同后缀名的文件出现的次数
 */
public class Demo3 {
    public static void main(String[] args) {
        File file = new File("Day11\\src\\course");
        HashMap<String,Integer> hm = new HashMap<>();
        getDirNum(file,hm);
        System.out.println(hm);

    }

    public static void getDirNum(File file, HashMap<String,Integer> hm){
        File [] files = file.listFiles();
        for (File f : files) {
            /*
            判断是否为File
            是：放行
            否：递归
             */
            if(f.isFile()){
                String fileName = f.getName();
                String [] fileNameArr = fileName.split("\\.");
                /*
                判断文件是不是xxxx.xxx格式
                是：放行
                 */
                if(fileNameArr.length == 2){
                    String fileEndName = fileNameArr[1];
                    /*
                    判断集合中是否已经记录了fileEndName
                    是：计数+1
                    否：添加入集合，计数为1
                     */
                    if(hm.containsKey(fileEndName)){
                        Integer count = hm.get(fileEndName);
                        count++;
                        hm.put(fileEndName,count);
                    }else{
                        hm.put(fileEndName,1);
                    }
                }
            }else {
                getDirNum(f,hm);
            }
        }
    }
}
